'''
静态方法:和类方法类似
1.定义:使用@staticmethod装饰器
2.调用:类名.方法名()无需传参
3.也只能访问类的属性和方法，对象是无法访问的
4.加载时机同类方法

总结：
类方法 静态方法
不同：
1.装饰器不同
2.类方法有参数，静态方法无参数
相同：
1.类方法，静态方法都可以访问类的属性和方法，对象是无法访问的
2.类方法，静态方法都可以直接通过类名调用
3.都可以在创建对象之前使用，因为不依赖于对象
普通方法与两者区别：
不同：
    1.无装饰器
    2.普通方法有self参数，类方法和静态方法无self参数
    3.普通方法只能通过对象调用，类方法和静态方法都可以通过类名调用

'''

class Person:
    age = 18

    def __init__(self,name):
        self.name = name
    def show(self):
        print('--->',Person.age)

    @classmethod
    def update_age(cls):
        cls.__age = 20
        print('--->类方法')

    @classmethod
    def show_age(cls):
        print('修改后的年龄是:',cls.__age)

    @staticmethod #静态方法
    def test():
        print('---->静态方法')
        print(Person.__age)

# p = Person()
# p.show()

# Person.age = Person.age + 1
# print(Person.age)

Person.update_age()
Person.show_age()
Person.test()
